// samsting : this file is auto create.

#ifndef ALIYUN_Rds_DescribeDBInstancesResponse_H_
#define ALIYUN_Rds_DescribeDBInstancesResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Rds {

class DescribeDBInstancesResponse : public AcsResponse {
public:
  DescribeDBInstancesResponse();

  class DBInstance {
    friend class DescribeDBInstancesResponse;
  public:

    class ReadOnlyDBInstanceId {
      friend class DescribeDBInstancesResponse;
      friend class DBInstance;
    public:
      const string& GetDBInstanceId(void) const;
    private:
      string DBInstanceId_;
    }; // ReadOnlyDBInstanceId 

    const std::vector<ReadOnlyDBInstanceId>& GetReadOnlyDBInstanceIds(void) const;
    int  GetInsId(void) const;
    const string& GetDBInstanceId(void) const;
    const string& GetDBInstanceDescription(void) const;
    const string& GetPayType(void) const;
    const string& GetDBInstanceType(void) const;
    const string& GetRegionId(void) const;
    const string& GetExpireTime(void) const;
    const string& GetDBInstanceStatus(void) const;
    const string& GetEngine(void) const;
    const string& GetDBInstanceNetType(void) const;
    const string& GetConnectionMode(void) const;
    const string& GetLockMode(void) const;
    const string& GetInstanceNetworkType(void) const;
    const string& GetLockReason(void) const;
    const string& GetZoneId(void) const;
    bool GetMutriORsignle(void) const;
    const string& GetCreateTime(void) const;
    const string& GetEngineVersion(void) const;
    const string& GetGuardDBInstanceId(void) const;
    const string& GetTempDBInstanceId(void) const;
    const string& GetMasterInstanceId(void) const;
    const string& GetVpcId(void) const;
  private:
    std::vector<ReadOnlyDBInstanceId> ReadOnlyDBInstanceIds_;
    int    InsId_;
    string DBInstanceId_;
    string DBInstanceDescription_;
    string PayType_;
    string DBInstanceType_;
    string RegionId_;
    string ExpireTime_;
    string DBInstanceStatus_;
    string Engine_;
    string DBInstanceNetType_;
    string ConnectionMode_;
    string LockMode_;
    string InstanceNetworkType_;
    string LockReason_;
    string ZoneId_;
    bool   MutriORsignle_;
    string CreateTime_;
    string EngineVersion_;
    string GuardDBInstanceId_;
    string TempDBInstanceId_;
    string MasterInstanceId_;
    string VpcId_;
  }; // DBInstance 

  const std::vector<DBInstance>& GetItems(void) const;
  int  GetPageNumber(void) const;
  int  GetTotalRecordCount(void) const;
  int  GetPageRecordCount(void) const;

private:
  std::vector<DBInstance> Items_;
  int    PageNumber_;
  int    TotalRecordCount_;
  int    PageRecordCount_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Rds {

#endif // #ifndef ALIYUN_Rds_DescribeDBInstancesResponse_H_

// end of file 
